/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.eurotrader.componentes;

import javax.faces.event.ActionEvent;

/**
 *
 * @author PROG01
 */
public class BeanCep {

    public void buscaEndereco(ActionEvent event) {
        //     PaginaSistema pagina1 = getObjetoPagina(FacesContext.getCurrentInstance().getViewRoot().getViewId().hashCode(), FacesContext.getCurrentInstance().hashCode());
        System.out.println("entrei aqui no cep");
//                   UIInput input =  (UIInput) event.getComponent().findComponent("itCep");
//                   System.out.println("cep: " + input.getValue());
        // InterfaceEndereco interfaceEndereco = (InterfaceEndereco) pagina1.getObjetoSelecionado();
//        MetodosBotoes metodosBotoes = (MetodosBotoes) Beans.getBean("botoes");
//        if (metodosBotoes.getObjetoController() instanceof InterfaceEndereco) {
//            InterfaceEndereco interfaceEndereco = (InterfaceEndereco) metodosBotoes.getObjetoController();
//
//
////            String cepSemPontos = getCampo("cep");
//            String cepSemPontos = interfaceEndereco.getCep();
//            if (cepSemPontos.length() == 9) {
//                CadGerCepController cadGerCepController = (CadGerCepController) Beans.getBean("CadGerCepController");
//                Cep cep = (Cep) cadGerCepController.buscaPorCampo("cep", cepSemPontos);
////            InterfaceEstadoController estadoController;
////
////            if (pagina1.getPagina().getController() instanceof InterfaceEstadoController) {
////                estadoController = (InterfaceEstadoController) pagina1.getPagina().getController();
////            } else {
////                estadoController = null;
////            }
//                if (cep != null) {
//                    interfaceEndereco.setBairro(cep.getBairro());
//                    interfaceEndereco.setCidadeId(cep.getCidade());
//                    interfaceEndereco.setEndereco(cep.getTp_Logradouro() + " " + cep.getLogradouro());
////                setCampo("bairro", cep.getBairro());
//////                if (estadoController != null) {
//////                    estadoController.setEstadoSelecionado(cep.getCidadeId().getEstadoId().getDescricao());
//////                }
////                setCampo("estado", (Estado) cep.getCidade().getEstado());
////                setCampo("cidade", (Cidade) cep.getCidade());
////                setCampo("endereco", cep.getTp_Logradouro() + " " + cep.getLogradouro());
//                } else {
//                    String cepBusca = cepSemPontos.substring(0, cepSemPontos.indexOf("-"));
//
//                    UfController controller = (UfController) Beans.getBean("UfController");
//                    ArrayList lista1 = (ArrayList) controller.pesquisar("SELECT uf FROM Uf WHERE cep1 <= '" + cepBusca
//                            + "' AND cep2 >= '" + cepBusca + "'");
//                    if (!lista1.isEmpty()) {
//                        String estado = lista1.get(0).toString();
//                        char letra1 = estado.toUpperCase().charAt(0);
//                        char letra2 = estado.toLowerCase().charAt(1);
//                        estado = String.valueOf(letra1) + String.valueOf(letra2);
//                        if (estado.toLowerCase().trim().equals("to")) {
//                            estado = "Toc";
//                        }
//                        ArrayList lista2 = (ArrayList) controller.pesquisar("SELECT u FROM " + estado + " u WHERE cep = '" + cepSemPontos + "'");
//                        if (!lista2.isEmpty()) {
//                            InterfaceEstados estados1 = (InterfaceEstados) lista2.get(0);
//                           
////                        setCampo("bairro", estados1.getBairro());
//                            CadGerCidadeController cidadeController = (CadGerCidadeController) Beans.getBean("CadGerCidadeController");
////                            System.out.println("cid" + estados1.getCidade());
//                            ArrayList listaDeCidades = (ArrayList) cidadeController.pesquisar("SELECT c FROM Cidade c WHERE c.descricao = '" + estados1.getCidade() + "'");
//                            if (listaDeCidades.size() == 1) {
////                            setCampo("estado", ((Cidade) listaDeCidades.get(0)).getEstado().getDescricao());
////                            interfaceEndereco.setBairro(cep.getBairro());
//
//                                interfaceEndereco.setCidadeId(((Cidade) listaDeCidades.get(0)));
//                                String nomeDaPagina = FacesContext.getCurrentInstance().getViewRoot().getViewId().toString();
//                                if (!(nomeDaPagina.substring(1, nomeDaPagina.indexOf("."))).equals("CadGerFilial")) {
//                                    BeanEstadoCidade beanEstadoCidade = (BeanEstadoCidade) Beans.getBean("beanEstadoCidade");
//                                    beanEstadoCidade.setEstadoSelecionado(interfaceEndereco.getCidadeId().getEstado());
//                                }
////                interfaceEndereco.setEndereco(cep.getTp_Logradouro() + " " + cep.getLogradouro());
//                                //estadoController.setEstadoSelecionado(((Cidade) listaDeCidades.get(0)).getEstadoId().getDescricao());
//                                // }
////                            System.out.println("aqui");
////                            String nomeDaPagina = FacesContext.getCurrentInstance().getViewRoot().getViewId().toString();
////                            if ((nomeDaPagina.substring(1, nomeDaPagina.indexOf("."))).equals("CadGerFilial")) {
////                                setCampo("cidade", ((Cidade) listaDeCidades.get(0)).getDescricao());
////                                System.out.println("aqui2");//                            interfaceEndereco.setCidadeId((Cidade) listaDeCidades.get(0));
////                            }else{
//
////                                setCampo("cidade", (Cidade) listaDeCidades.get(0));
////                            }
//                            } else if (listaDeCidades.size() > 1) {
//                                System.out.println("aqui1");
//                                List cidadeList = cidadeController.pesquisar("SELECT c FROM Cidade c WHERE upper(c.estadoId.uf) = '" + estado.toUpperCase() + "'");
//                                if (!cidadeList.isEmpty()) {
//                                    interfaceEndereco.setCidadeId((Cidade) cidadeList.get(0));
//                                    String nomeDaPagina = FacesContext.getCurrentInstance().getViewRoot().getViewId().toString();
//                                    if (!(nomeDaPagina.substring(1, nomeDaPagina.indexOf("."))).equals("CadGerFilial")) {
//                                        BeanEstadoCidade beanEstadoCidade = (BeanEstadoCidade) Beans.getBean("beanEstadoCidade");
//                                        beanEstadoCidade.setEstadoSelecionado(interfaceEndereco.getCidadeId().getEstado());
//                                    }
////                                setCampo("estado", ((Cidade) cidadeList.get(0)).getEstado().getDescricao());
////                                setCampo("cidade", (Cidade) cidadeList.get(0));
//                                }
//                            }
////                            System.out.println("aqui3" + estados1.getTpLogradouro() + " " + estados1.getLogradouro());
////                        setCampo("endereco", estados1.getTpLogradouro() + " " + estados1.getLogradouro());
//                            System.out.println("bairro: " + estados1.getBairro());
//                            interfaceEndereco.setBairro(estados1.getBairro());
//                            interfaceEndereco.setEndereco(estados1.getTpLogradouro() + " " + estados1.getLogradouro());
//                        } else {
////                        System.out.println("aqui4");
////                        setCampo("bairro", "");
//////                        interfaceEndereco.setBairro("");
//////                        if (pagina1.getPagina().getController() instanceof InterfaceEstadoController) {
//////                            estadoController.setEstadoSelecionado("PARANÁ");
//////                        }
////                        setCampo("estado", "PARANÁ");
////                        setCampo("cidade", null);
////                        setCampo("endereco", "");
//                            interfaceEndereco.setBairro("");
//                            interfaceEndereco.setCidadeId(null);
//                            interfaceEndereco.setEndereco("");
////                        interfaceEndereco.setCidadeId(null);
////                        interfaceEndereco.setEndereco("");
//                        }
//                    }
//                }
//            }
//        }
    }
//    private String getCampo(String campo) {
//        BaseController controller = ((MetodosBotoes) Beans.getBean("botoes")).getControllerPagina();
//        Method[] metodos = controller.getObjeto().getClass().getMethods();
//        for (int i = 0; i < metodos.length; i++) {
//            if ((metodos[i].getName().toLowerCase().contains("get" + campo)) || (metodos[i].getName().toLowerCase().contains("get" + campo + "9"))) {
//                Object objResult;
//                try {
//                    Object[] obj = null;
//                    objResult = metodos[i].invoke(controller.getObjeto(), obj);
//                    if (objResult != null) {
//                        System.out.println("aqui q eu retornei");
//                        return (String) objResult;
//                    }
//                } catch (InvocationTargetException ex) {
//                    Logger.getLogger(BeanCep.class.getName()).log(Level.SEVERE, null, ex);
//                } catch (IllegalAccessException ex) {
//                    Logger.getLogger(BeanCep.class.getName()).log(Level.SEVERE, null, ex);
//                } catch (IllegalArgumentException ex) {
//                    Logger.getLogger(BeanCep.class.getName()).log(Level.SEVERE, null, ex);
//                }
//            }
//        }
//        System.out.println("aqui q eu retornei111111111");
//        return "";
//    }
//
//    private void setCampo(String campo, Object valor) {
//        BaseController controller = ((MetodosBotoes) Beans.getBean("botoes")).getControllerPagina();
//        Method[] metodos = controller.getObjeto().getClass().getMethods();
//        for (int i = 0; i < metodos.length; i++) {
//
//            if ((metodos[i].getName().toLowerCase().contains("set" + campo)) || (metodos[i].getName().toLowerCase().contains("set" + campo + "9"))) {
////                    Object objResult;
//                try {
//                    //Object[] obj = null;
//                    System.out.println("chamei aqui o set");
//                    System.out.println("valor " + valor);
//                    System.out.println(metodos[i].getName());
//                    metodos[i].invoke(controller.getObjeto(), valor);
//
////                        if (objResult != null) {
////                            System.out.println("aqui q eu retornei");
////                            return (String) objResult;
////                        }
//                } catch (InvocationTargetException ex) {
//                    Logger.getLogger(BeanCep.class.getName()).log(Level.SEVERE, null, ex);
//                } catch (IllegalAccessException ex) {
//                    Logger.getLogger(BeanCep.class.getName()).log(Level.SEVERE, null, ex);
//                } catch (IllegalArgumentException ex) {
//                    Logger.getLogger(BeanCep.class.getName()).log(Level.SEVERE, null, ex);
//                }
//            }
//        }
////         System.out.println("aqui q eu retornei111111111");
////         return "";
//    }
}
